﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Mandarine.MVVM.Annotation
{
    /// <summary>
    /// ViewModelコード生成に使用するプロパティ定義属性クラスを提供します
    /// 
    /// </summary>
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
    public class PropertyDeclAttribute : Attribute
    {
        public string name;
        public Type type;
        public object defaultValue;
        public Type converterType;
        public bool notifyPropertyChanged = true;
        public bool generateValidate;
        public string validateOption;

        /// <summary>
        /// デフォルトコンストラクタ
        /// </summary>
        public PropertyDeclAttribute() 
            : base()
        {}
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="name"></param>
        /// <param name="type"></param>
        public PropertyDeclAttribute(string name, Type type)
            :this()
        {
            this.name = name;
            this.type = type;
            //this.defaultValue = defaultValue;
        }

    }
}
